// Package web 提供webapi接口调用
package web

import (
	"net/http"

	"github.com/gin-gonic/gin"
	"kunpeng/config"
	"kunpeng/plugin"
)

// StartServer 启动web服务接口
func StartServer(bindAddr string) {
	router := gin.Default()     // 创建路由对象
	router.GET("/api/pluginList", func(c *gin.Context) {   // 添加一个get请求
		c.JSON(200, plugin.GetPlugins()) 	// 该请求以json格式返回插件相关的信息
	})
	router.POST("/api/check", func(c *gin.Context) {  // 添加一个post请求，调用插件开始扫描
		var json plugin.Task
		if err := c.ShouldBindJSON(&json); err != nil {
			c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
			return
		}
		result := plugin.Scan(json)    // 开始扫描
		c.JSON(200, result)		/// 返回扫描结果
	})
	router.POST("/api/config", func(c *gin.Context) {  // 添加一个pos请求，设置config 
		buf := make([]byte, 2048)
		n, _ := c.Request.Body.Read(buf)
		config.Set(string(buf[0:n]))
		c.JSON(200, map[string]bool{"success": true})
	})

	router.Run(bindAddr)  // h监听并在 bindAddr (例如： 0.0.0.0:38080 ）上启动服务
}
